package com.abner.design.patterns.visitor;

import java.util.ArrayList;
import java.util.List;

/**
 * 枚举它的元素， 可以提供一个高层的接口，用来允许访问者访问元素
 * @author abner
 */
public class ObjectStructure {

	private List<Person> persons = new ArrayList<>();

	/**
	 * 附加
	 * @param p
	 */
	public void attach(Person p) {
		persons.add(p);
	}

	/**
	 * 移除
	 * @param p
	 */
	public void detach(Person p) {
		persons.remove(p);
	}

	/**
	 * 测评结果
	 * @param action
	 */
	public void display(Action action) {
		for(Person p: persons) {
			p.accept(action);
		}
	}
}
